package com.easylinkin.linkappapi.quality.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.common.model.RequestModel;
import com.easylinkin.linkappapi.quality.dto.ProblemDTO;
import com.easylinkin.linkappapi.quality.entity.Problem;
import java.util.List;

/**
 * <p>
 * 闸机表 服务类
 * </p>
 *
 * @author TongJie
 * @since 2022-04-13
 */
public interface ProblemService extends IService<Problem> {

  IPage<Problem> queryListByPage(RequestModel<Problem> requestModel);

  /**
   * 增加
   * @param problem
   */
  void insert(Problem problem);

  /**
   * 根据id编辑
   * @param problem
   */
  void updateOne(Problem problem);

  /**
   * @Description: 根据条件，查询
   * @author kan yuanfeng
   * @date 2020/11/04 11:42
   */
  List<Problem> queryList(Problem problem);

  /**
   * @Description: 启用/禁用
   * @author kan yuanfeng
   * @date 2020/11/04 11:42
   */
  void changeStatus(Problem problem);


  void changeStatusFromEnterprise(Problem problem);

  /**
   * @Description: 启用/禁用
   * @author kan yuanfeng
   * @date 2020/11/04 11:42
   */
  void changeOrder(ProblemDTO problemDTO);

  /**
   * 验证问题是否被引用
   */
  Boolean check(Integer id);

  void addFromEnterprise(Problem problem);

  void updateFromEnterprise(Problem problem);

  void deleteFromEnterprise(Problem problem);

  List<Problem> listFromEnterprise(Problem problem);

  /**
   * 同步企业级
   *
   * @param add   是否新增 同步新增 1-是，0-否
   * @param cover 是否覆盖 同步覆盖 1-是，0-否
   * @return
   */
  void synchronizeData(Integer add, Integer cover);
}
